package a09_贪心算法;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;

/**
 * <p>
 * a14_根据身高重建队列复习3
 * </p>
 *
 * @author flyduck
 * @since 2025/4/18
 */
public class a14_根据身高重建队列复习3 {
    public static void main(String[] args) {
        a14_根据身高重建队列复习3 test = new a14_根据身高重建队列复习3();
        test.reconstructQueue(new int[][]{{7,0},{4,4},{7,1},{5,0},{6,1},{5,2}});
    }
    //[[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]
    public int[][] reconstructQueue(int[][] people) {
        //先按照身高排列，如果身高一样，排名从小到达，比如两个都是7，那么0在前面，1在后面
        Arrays.sort(people, (item1,item2)->{
            if(item1[0] != item2[0]){
                return item2[0] - item1[0];
            }else {
                return item1[1] - item2[1];
            }
        });

        //然后根据排名插入
        List<int[]> list = new ArrayList<>();
        for (int[] person : people) {
            list.add(person[1],person);
        }


        return list.toArray(new int[list.size()][2]);
    }
}
